The moving picture compression standard H.264 is used in many applications because of its high compression efficiency. Meanwhile, a need for low-delay picture compression has been increasing for applications, such as video conferences and video transmission.
In encoding a video, the number of bits necessary for encoding one picture varies picture by picture. Reasons thereof include differences in complexity of patterns among scenes and pictures of the video, differences in parameters such as picture coding types among pictures, and factors deriving from statistical nature of entropy encoding. The entropy encoding is a method of improving efficiency to express information by allocating a code having a shorter bit length for more frequently appearing information.
On the other hand, when an encoded bitstream is transmitted, a bandwidth of a capacity of a transmission channel is usually limited. Therefore, it is necessary to smooth bitrate fluctuation before sending the bitstream to the transmission channel by inserting a buffer as illustrated in FIG. 2. Similarly, the buffer is also necessary at a decoder side in order to supply a required amount of bits to a decoder at the moment to decode each frame in a timely manner. The buffer at the decoder side needs to have at least the same size as that at an encoder side. As a result, a buffering delay becomes double in total.
In a case of a professional-use system, such as facilities of broadcasting stations, the bitrate fluctuation can be tolerated to a certain degree because a relatively high transmission bandwidth is available. However, considering consumer-use applications, an available transmission bandwidth is much more limited, and thus such bitrate fluctuation causes more serious impact on a transmission delay. Therefore, how reducing a buffering delay is a key to realize low delay, especially in a consumer-use system.
As a background technology of the field of the present technology, there is JP 02-194734 A (PTL 1). This publication describes that “a method of controlling an amount of encoded output data, for performing highly efficient encoding by controlling an amount of data such that the amount of encoded output data in each predetermined given section falls within a given value, is provided, the method including: a means to predict the amount of data using a section shorter than the predetermined given section as a unit; a means to control encoding processing such that a total of amounts of prediction data in the predetermined given section based on the amount of prediction data obtained by the prediction means becomes constant; and a means to accumulate a difference between the amount of prediction data obtained by the prediction means and an amount of actually encoded data, and to control the encoding processing based on an accumulation result” (see Solution to Problem).